/**
 * @projectName 高校就业网
 * @package com.kzj.CollegeEmploymentNetwork.model
 * @className com.kzj.CollegeEmploymentNetwork.model.Job
 * @copyright Copyright 2025 Thunisoft, Inc. All rights reserved.
 */
package com.kzj.CollegeEmploymentNetwork.model;

import javax.persistence.Column;
import javax.persistence.Table;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;
import lombok.experimental.SuperBuilder;
import com.kzj.CollegeEmploymentNetwork.common.BaseEntity;
import javax.validation.constraints.Size;
import com.kzj.CollegeEmploymentNetwork.validate.Validate;
import com.thunisoft.artery.data.annotation.CodeType;


/**
 * Job
 *
 * @description 职位表实体
 * @author kzj
 * @date 2025年01月20日 23:11:54
 * @version 1.0.0
 **/
@ApiModel("职位表")
@Table(name="db_recruit.t_job")    
@Getter
@Setter
@ToString
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
public class Job extends BaseEntity{
    
    /**
     * serialVersionUID
     */
    private static final long serialVersionUID = 1L;
    
    /**
     * 外键：公司
     */
    @ApiModelProperty("外键：公司")
    @Column(name = "c_bh_company", columnDefinition = "varchar(32)")
    @Size(max = 32, groups = {Validate.class}, message = "外键：公司的最大长度为32")
    private String bhCompany;

    /**
     * 外键：招聘者
     */
    @ApiModelProperty("外键：招聘者")
    @Column(name = "c_bh_recruiter", columnDefinition = "varchar(32)")
    @Size(max = 32, groups = {Validate.class}, message = "外键：招聘者的最大长度为32")
    private String bhRecruiter;

    /**
     * 职位
     */
    @ApiModelProperty("职位")
    @Column(name = "n_job")
    @CodeType("cy_017")
    private Integer job;

    /**
     * 职位类型（全职，实习，兼职）
     */
    @ApiModelProperty("职位类型（全职，实习，兼职）")
    @Column(name = "n_type")
    @CodeType("cy_022")
    private Integer type;

    /**
     * 职位名称
     */
    @ApiModelProperty("职位名称")
    @Column(name = "c_name", columnDefinition = "varchar(32)")
    @Size(max = 32, groups = {Validate.class}, message = "职位名称的最大长度为32")
    private String name;

    /**
     * 薪资min
     */
    @ApiModelProperty("薪资min")
    @Column(name = "n_salary_min")
    private Integer salaryMin;

    /**
     * 薪资max
     */
    @ApiModelProperty("薪资max")
    @Column(name = "n_salary_max")
    private Integer salaryMax;

    /**
     * 职位详情
     */
    @ApiModelProperty("职位详情")
    @Column(name = "c_info", columnDefinition = "varchar(900)")
    @Size(max = 900, groups = {Validate.class}, message = "职位详情的最大长度为900")
    private String info;

    /**
     * 办公地点
     */
    @ApiModelProperty("办公地点")
    @Column(name = "c_postion", columnDefinition = "varchar(300)")
    @Size(max = 300, groups = {Validate.class}, message = "办公地点的最大长度为300")
    private String postion;

    /**
     * 学历
     */
    @ApiModelProperty("学历")
    @Column(name = "n_education_background")
    @CodeType("cy_006")
    private Integer educationBackground;

    /**
     * 工作经验
     */
    @ApiModelProperty("工作经验")
    @Column(name = "n_experience")
    @CodeType("cy_009")
    private Integer experience;

    /**
     * 状态（暂存，审核中，发布，停止招聘）
     */
    @ApiModelProperty("状态（暂存，审核中，发布，停止招聘）")
    @Column(name = "n_status")
    @CodeType("cy_011")
    private Integer status;

    /**
     * 排序编号
     */
    @ApiModelProperty("排序编号")
    @Column(name = "n_sort_no")
    private Integer sortNo;

}